package cn.amos.dao.persistence;

import cn.amos.dao.entity.ProductEntity;
import cn.amos.dao.search.ProductSearch;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author DaoyuanWang
 */
@Repository
public interface ProductMapper {

    /**
     * 添加一个产品
     *
     * @param productEntity 产品实体
     */
    void insert(ProductEntity productEntity);

    /**
     * 修改产品信息
     *
     * @param productEntity 产品实体
     */
    void update(ProductEntity productEntity);

    /**
     * 根据产品id获得产品信息
     *
     * @param userId 产品id
     * @return 产品实体
     */
    ProductEntity selectById(Integer userId);

    /**
     * 根据查询条件获得产品信息
     *
     * @param productSearch 产品查询对象
     * @return 产品实体
     */
    ProductEntity selectByExample(@Param("search") ProductSearch productSearch);

    /**
     * 根据查询条件获得多条产品信息
     *
     * @param productSearch 产品查询对象
     * @return 产品实体列表
     */
    List<ProductEntity> selectListByExample(@Param("search") ProductSearch productSearch);

    /**
     * 根据产品id删除产品
     *
     * @param userId 用户id
     */
    void delete(Integer userId);

    /**
     * 根据条件删除产品信息
     *
     * @param productSearch 产品查询对象
     */
    void deleteByExample(@Param("search") ProductSearch productSearch);
}
